;mIRC password-protection by: [eL mOnGo]
;The password is encrypted into mirc.ini, so people can't hack their
;way into your mIRC :)
;(If you have NO, and I mean NO scripting-knowledge! :)
;Copyright  [eL mOnGo] (mongo@ilovejesus.com)
;----------
;Updated version (v4.2)
;
;To load, type:
;  /load -rs secur.mrc
;-----------------------------------------------------------------------

on 1:load:{
  set %screen.saver on
  set %idle.saver 600
}

on 1:start:{
  .get.resolution
  .ial on
  if ($readini $mircdirmirc.ini Security Boot == yes) {
    .remini $mircdirmirc.ini Security Correct
    .set %password $$?*="What's your password?"
    .set %check $readini $mircdirmirc.ini Security Password
    .set %what $decode(%check)
    if (%password == %what) { goto correctashell }
    else { goto fuckingwrong }
    :correctashell
    .secho 4You entered the correct password.
    .writeini $mircdirmirc.ini Security Correct yes
    .unset %password
    .unset %check
    .unset %what
    .unset %decode
    .halt
    :fuckingwrong
    .unset %password
    .unset %check
    .unset %what
    .unset %decode
    .secho 4Wrong password.. Exiting.
    .timer 1 2 .exit
    .halt
  }
  elseif ($readini $mircdirmirc.ini Security Boot != yes) {
    .writeini $mircdirmirc.ini Security Boot yes
    .secho 4No password is set.
    .secho 4Need some information :)
    .secho 4Password should contain LETTERS!
    .set %pass $$?*="What shall your password be?"
    .set %confirm $$?*="Confirm password"
  }
  if (%confirm != %pass) {
    .secho 4That wasn't what you typed at first!
    .unset %confirm
    .unset %pass
    .writeini $mircdirmirc.ini Security Boot no
    .secho 4Closing mIRC... Restart to enter setup.
    .timer 1 3 .exit
    .halt
  }
  else { goto cont }
  :cont
  .encode %pass
  .writeini $mircdirmirc.ini Security Password %code
  .unset %pass
  .unset %confirm
  .unset %code
  .secho 4Restart mIRC.
  .timer 1 2 .exit
}
alias decode {
  set -q %decode $parms
  %decode = $replace(%decode,,A) 
  %decode = $replace(%decode,,B)
  %decode = $replace(%decode,,C)
  %decode = $replace(%decode,,D)
  %decode = $replace(%decode,,E)
  %decode = $replace(%decode,,F)
  %decode = $replace(%decode,,G)
  %decode = $replace(%decode,,H)
  %decode = $replace(%decode,,I)
  %decode = $replace(%decode,,J)
  %decode = $replace(%decode,,K)
  %decode = $replace(%decode,,l)
  %decode = $replace(%decode,,m)
  %decode = $replace(%decode,,n)
  %decode = $replace(%decode,:,o)
  %decode = $replace(%decode,%,p)
  %decode = $replace(%decode,,q)
  %decode = $replace(%decode,,r)
  %decode = $replace(%decode,,s)
  %decode = $replace(%decode,,t)
  %decode = $replace(%decode,~,u)
  %decode = $replace(%decode,,v)
  %decode = $replace(%decode,,w)
  %decode = $replace(%decode,,x)
  %decode = $replace(%decode,8,y)
  %decode = $replace(%decode,`,z)
  return %decode 
}
alias encode {
  set -q %code *1
  %code = $replace(%code,a,) 
  %code = $replace(%code,b,)
  %code = $replace(%code,c,)
  %code = $replace(%code,d,)
  %code = $replace(%code,e,)
  %code = $replace(%code,f,)
  %code = $replace(%code,g,)
  %code = $replace(%code,h,)
  %code = $replace(%code,i,)
  %code = $replace(%code,j,)
  %code = $replace(%code,k,)
  %code = $replace(%code,l,)
  %code = $replace(%code,m,)
  %code = $replace(%code,n,)
  %code = $replace(%code,o,:)
  %code = $replace(%code,p,%)
  %code = $replace(%code,q,)
  %code = $replace(%code,r,)
  %code = $replace(%code,s,)
  %code = $replace(%code,t,)
  %code = $replace(%code,u,~)
  %code = $replace(%code,v,)
  %code = $replace(%code,w,)
  %code = $replace(%code,x,)
  %code = $replace(%code,y,8)
  %code = $replace(%code,z,`)
  %code = $replace(%code,!,!)
  return %code  
}
on 1:connect:{
  if ($readini $mircdirmirc.ini Security Correct != yes) {
    .secho 13=======================================
    .secho 4You tried to hack yourself into mIRC...
    .secho 4Shame on you. Closing mIRC. 
    .secho 13=======================================
    .timer 1 3 .exit  
  }
  .timerIDLY 0 5 .ctcp $me IDLINGBABY
}
alias newpass {
  :start
  .set %oldpass $$?*="Enter Old Password"
  .set %rompe $readini $mircdirmirc.ini Security Password
  .set %fot $decode(%rompe)
  if (%oldpass == %fot) goto setnew
  if (%oldpass != %fot ) secho 4That isn't your old password. | goto start 
  :setnew
  .set %newpass $$?*="Enter New Password"
  .encode %newpass
  .writeini $mircdirmirc.ini Security Password %code
  .secho 4Password successfully changed.
  .unset %rompe
  .unset %code 
  .unset %decode 
  .unset %fot
  .unset %newpass 
  .unset %oldpass 
  .halt
}
menu menubar {
  -
  m&pp
  .Change password:/newpass
  .Remove protection:/unsecur
  .Screensaver
  ..Enable:set %screen.saver on | secho 4Idle screensaver on.
  ..Disable:set %screen.saver off | secho 4Idle screensaver off.
  ..Idle-time ( $+ $duration(%idle.saver) $+ ):set %idle.saver $$?="How long before enabling screensaver? (600 = 10mins)" | secho 4Now enabling screensaver after $duration(%idle.saver) $+ .
}
alias unsecur {
  .set %password $$?*="What's your password?"
  .set %check $readini $mircdirmirc.ini Security Password
  .set %what $decode(%check)
  if (%password == %what) { goto unsecur }
  else { goto secur }
  :unsecur
  .secho 4Unloading mIRC password-protection by: [eL mOnGo]
  .timer 1 2 .echo -a 7(mpp)4: 4Unloading complete.
  .remini $mircdirmirc.ini Security
  .unset %password
  .unset %check
  .unset %what
  .unset %screen.saver
  .unset %idle.saver
  .unset %gnukk
  .unset %decode
  .unload -rs $findfile($mircdir,sec*,1) 
  .halt
  :secur
  .unset %password
  .unset %check
  .unset %what
  .unset %decode
  .secho 4Wrong password.. Exiting.
  .timer 1 2 .exit
  .halt
}
alias secho { .echo -a 7(mpp)4:  $1- }
on 1:input:*:{
  if (/unload -rs sec isin $1-) { halt }
}
alias screensaver {
  if (%screensaver.status == on) { halt }
  set %screensaver.status on
  set %screensaver.t -1
  .timerSCREENSAVER -m 0 10 screensaver.do
  if (%gnukk == $null) { window -op +b @screensaver 0 0 800 600 }
  if (640x isin %gnukk) { window -op +b @screensaver 0 0 640 480 }
  if (800x isin %gnukk) { window -op +b @screensaver 0 0 800 600 }
  if (1024x isin %gnukk) { window -op +b @screensaver 0 0 1024 768 }
  set %jalla 0
}
alias screensaver.do {
  if (%screensaver.status) {
    if ($window(@screensaver) == $null) { 
      if (%gnukk == $null) { window -op +b @screensaver 0 0 800 600 }
      if (640x isin %gnukk) { window -op +b @screensaver 0 0 640 480 }
      if (800x isin %gnukk) { window -op +b @screensaver 0 0 800 600 }
      if (1024x isin %gnukk) { window -op +b @screensaver 0 0 1024 768 }
    }
    screensaver.run
  }
}
alias screensaver.run {
  if (%screensaver.status) {
    inc %jalla
    if %jalla > 300 {
      set %jalla 0
      clear @screensaver
    }
    drawtext -c @screensaver $rand(14,15) Arial 24 $rand(1,1024) $rand(1,768) 1024 768 you're idling, baby ... 
  }
}
menu @screensaver {
  mouse:inc %screensaver.t 1 | if (%screensaver.t > 1) { set %screensaver.status off | close -@ @screensaver | .timerSCREENSAVER off | set %screen.saver off | .timer 1 30 set %screen.saver on }
}
alias get.resolution {
  if ($exists(c:\windows\win.ini) == $false) { halt }
  set %win.ini 0
  :nr1
  inc %win.ini
  .set %gnukk $read -l $+ %win.ini -w*.drv* c:\windows\win.ini
  if (1024x isin %gnukk) { goto nr2 }
  if (800x isin %gnukk) { goto nr2 }
  if (640x isin %gnukk) { goto nr2 }
  if (%win.ini > $lines(c:\windows\win.ini)) { goto nr2 }
  goto nr1
  :nr2
  .unset %win.ini
}
ctcp 1:idlingbaby:?:{
  if ($nick != $me) { halt }
  .ctcpreply $me IDLINGBABY $idle
  halt
}
on 1:ctcpreply:IDLINGBABY*:{
  if ($nick != $me) { halt }
  if ($2 > %idle.saver) {
    if (%screen.saver == on) { .screensaver | halt }
    halt
  }
  halt
}

